home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / gtmisc.arc / GT-UTIL.PAS < prev    next >
Pascal/Delphi Source File  |  1987-03-18  |  47KB  |  1,202 lines

  1. {$C-,V-,K-,R-,U-}
  2. (****************************************************************************)
  3. (*                                                                          *)
  4. (*       This program is the GT-UTIL program.  It will do several           *)
  5. (*       utility functions with the Phone Directory as follows:             *)
  6. (*                                                                          *)
  7. (*       1.   Convert pre GT 4.20 directories to new format.                *)
  8. (*       2.   Convert pre GT 8.00 directories to new format.                *)
  9. (*       3.   Convert pre GT 9.00 directories to new format.                *)
  10. (*       4.   Convert GT 9.xx directories to new format.                    *)
  11. (*       5.   Convert several QMODEM .FON formats to GT format.             *)
  12. (*       6.   List directory to the system printer.                         *)
  13. (*       7.   Import text listing of BBS into GT directory format.          *)
  14. (*                                                                          *)
  15. (****************************************************************************)
  16.  
  17. program
  18.    gt_util;
  19.  
  20. TYPE
  21.  
  22. (****************************************************************************)
  23. (*                                                                          *)
  24. (*                          QMODEM v1.05-B  &  1.1                          *)
  25. (*                                                                          *)
  26. (****************************************************************************)
  27.  
  28.    phone_type105    = RECORD
  29.                          name                   : STRING[25];
  30.                          number                 : STRING[14];
  31.                          speed, dbits, sbits    : INTEGER;
  32.                          parity                 : BYTE;
  33.                       END;
  34.  
  35. (****************************************************************************)
  36. (*                                                                          *)
  37. (*                             QMODEM v2.0                                  *)
  38. (*                                                                          *)
  39. (*   parity seems to be one byte where value 0 = "N", 1 = "E", 2 = "O"      *)
  40. (*   Bill Swenson.                                                          *)
  41. (*                                                                          *)
  42. (****************************************************************************)
  43.  
  44.    phone_type200    = RECORD
  45.                          name                   : STRING[35];
  46.                          number                 : STRING[14];
  47.                          speed, dbits, sbits    : INTEGER;
  48.                          parity                 : BYTE;
  49.                          Script_File            : STRING[12];
  50.                       END;
  51.  
  52. (****************************************************************************)
  53. (*                                                                          *)
  54. (*                             QMODEM v2.1                                  *)
  55. (*                                                                          *)
  56. (****************************************************************************)
  57.  
  58.    phone_type210    = RECORD
  59.                          name                   : STRING[35];
  60.                          number                 : STRING[14];
  61.                          speed, dbits, sbits    : INTEGER;
  62.                          parity                 : BYTE;
  63.                          Script_File            : STRING[12];
  64.                          date                   : STRING[8];
  65.                          times                  : REAL;
  66.                          protocol               : CHAR;
  67.                          echo                   : CHAR;
  68.                          whoknows               : ARRAY[1..30] OF CHAR;
  69.                       END;
  70.  
  71. (****************************************************************************)
  72. (*                                                                          *)
  73. (*                          GT PowerComm 11.0                               *)
  74. (*                                                                          *)
  75. (****************************************************************************)
  76.    ndialrec         = RECORD
  77.                          redial    : CHAR;
  78.                          name      : STRING[30];
  79.                          hours     : STRING[9];
  80.                          password  : STRING[30];
  81.                          ccount    : INTEGER;
  82.                          cduration : REAL;
  83.                          cupload   : REAL;
  84.                          cdnload   : REAL;
  85.                          number    : STRING[14];
  86.                          date      : STRING[8];
  87.                          time      : STRING[5];
  88.                          baud      : INTEGER;
  89.                          parity    : INTEGER;
  90.                          databits  : INTEGER;
  91.                          stopbits  : INTEGER;
  92.                          protocol  : CHAR;
  93.                          script    : STRING[12];
  94.                       END;
  95.    ndialarray       = RECORD
  96.                          no        : INTEGER;
  97.                          entries   : ARRAY[ 1..16 ] OF ndialrec;
  98.                       END;
  99.    VAR
  100.       nfile   : file OF ndialarray;
  101.       ndir    : ndialarray;
  102.  
  103.    PROCEDURE
  104.       reformat;
  105.    {
  106.       This procedure is intended to be used to upgrade old versions of the GT
  107.       phone directory to the new improved style.  The program renames the old
  108.       directory to OLD_GT.DIR and the new directory becomes GT.DIR, ready to
  109.       use with GT v11.0.
  110.    }
  111.    TYPE
  112.       odialrec   = RECORD
  113.                       name     : STRING[30];
  114.                       number   : STRING[30];
  115.                       baud     : INTEGER;
  116.                       parity   : INTEGER;
  117.                       databits : INTEGER;
  118.                       stopbits : INTEGER;
  119.                    END;
  120.       odialarray = RECORD
  121.                       no       : INTEGER;
  122.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  123.                    END;
  124.  
  125.    VAR
  126.       ofile   : file OF odialarray;
  127.       odir    : odialarray;
  128.       i,j,k   : INTEGER;
  129.       s       : STRING[255];
  130.    BEGIN
  131.       writeln;
  132.       writeln('***********************************************************************');
  133.       writeln('*    Make sure the old phone directory is in the default directory    *');
  134.       writeln('*    and default drive, then press <enter> to begin or type "exit"    *');
  135.       writeln('*    followed by <enter> to quit.                                     *');
  136.       writeln('***********************************************************************');
  137.       writeln;
  138.       s[0] := #00;
  139.       readln(s);
  140.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  141.          exit;
  142.       assign(ofile,'GT.DIR');
  143.       rename(ofile,'OLD_GT.DIR');
  144.       reset(ofile);
  145.       assign(nfile,'GT.DIR');
  146.       rewrite(nfile);
  147.       i := filesize(ofile);
  148.       FOR j:=0 to pred(i) DO BEGIN
  149.          seek(ofile,j);
  150.          read(ofile,odir);
  151.          ndir.no := odir.no;
  152.          FOR k:=1 to 16 DO BEGIN
  153.             ndir.entries[k].redial   := ' ';
  154.             ndir.entries[k].date     := '';
  155.             ndir.entries[k].time     := '';
  156.             ndir.entries[k].password := '';
  157.             ndir.entries[k].ccount   := 0;
  158.             ndir.entries[k].cduration:= 0.0;
  159.             ndir.entries[k].cupload  := 0.0;
  160.             ndir.entries[k].cdnload  := 0.0;
  161.             ndir.entries[k].hours    := '';
  162.             ndir.entries[k].name     := odir.entries[k].name;
  163.             ndir.entries[k].number   := odir.entries[k].number;
  164.             ndir.entries[k].baud     := odir.entries[k].baud;
  165.             ndir.entries[k].parity   := odir.entries[k].parity;
  166.             ndir.entries[k].databits := odir.entries[k].databits;
  167.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  168.             ndir.entries[k].protocol := ' ';
  169.             ndir.entries[k].script   := '';
  170.          END;
  171.          write(nfile,ndir);
  172.       END;
  173.       close(nfile);
  174.       close(ofile);
  175.    END;
  176.  
  177.    PROCEDURE
  178.       reformat2;
  179.    {
  180.       This procedure is intended to be used to upgrade old versions of the GT
  181.       phone directory to the new improved style.  The program renames the old
  182.       directory to $GT.DIR and the new directory becomes GT.DIR, ready to
  183.       use with GT v11.0.
  184.    }
  185.    TYPE
  186.       odialrec   = RECORD
  187.                       redial    : CHAR;
  188.                       name      : STRING[30];
  189.                       number    : STRING[14];
  190.                       date      : STRING[8];
  191.                       time      : STRING[5];
  192.                       baud      : INTEGER;
  193.                       parity    : INTEGER;
  194.                       databits  : INTEGER;
  195.                       stopbits  : INTEGER;
  196.                    END;
  197.       odialarray = RECORD
  198.                       no       : INTEGER;
  199.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  200.                    END;
  201.    VAR
  202.       ofile   : file OF odialarray;
  203.       odir    : odialarray;
  204.       i,j,k   : INTEGER;
  205.       s       : STRING[255];
  206.       dname   : STRING[50];
  207.    BEGIN
  208.       writeln;
  209.       writeln('***********************************************************************');
  210.       writeln('*    Make sure the old phone directory is in the default directory    *');
  211.       writeln('*    and default drive, then enter the filename to begin or type      *');
  212.       writeln('*    "exit" followed by <enter> to quit.                              *');
  213.       writeln('***********************************************************************');
  214.       writeln;
  215.       s[0] := #00;
  216.       readln(s);
  217.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  218.          exit;
  219.       i := pos('.',s);
  220.       IF (i > 0) THEN
  221.          s[0] := CHR(Pred(i));
  222.       IF (s[0] = #00) THEN
  223.          dname := 'GT'
  224.       ELSE
  225.          dname := s;
  226.       assign(ofile,dname+'.DIR');
  227.       s := '$'+dname;
  228.       IF s[0] > #08 THEN
  229.          s[0] := #08;
  230.       rename(ofile,s+'.DIR');
  231.       reset(ofile);
  232.       assign(nfile,dname+'.DIR');
  233.       rewrite(nfile);
  234.       i := filesize(ofile);
  235.       FOR j:=0 to pred(i) DO BEGIN
  236.          seek(ofile,j);
  237.          read(ofile,odir);
  238.          ndir.no := odir.no;
  239.          FOR k:=1 to 16 DO BEGIN
  240.             ndir.entries[k].redial   := odir.entries[k].redial;
  241.             ndir.entries[k].date     := odir.entries[k].date;
  242.             ndir.entries[k].time     := odir.entries[k].time;
  243.             ndir.entries[k].password := '';
  244.             ndir.entries[k].ccount   := 0;
  245.             ndir.entries[k].cduration:= 0.0;
  246.             ndir.entries[k].cupload  := 0.0;
  247.             ndir.entries[k].cdnload  := 0.0;
  248.             ndir.entries[k].hours    := '';
  249.             ndir.entries[k].name     := odir.entries[k].name;
  250.             ndir.entries[k].number   := odir.entries[k].number;
  251.             ndir.entries[k].baud     := odir.entries[k].baud;
  252.             ndir.entries[k].parity   := odir.entries[k].parity;
  253.             ndir.entries[k].databits := odir.entries[k].databits;
  254.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  255.             ndir.entries[k].protocol := ' ';
  256.             ndir.entries[k].script   := '';
  257.          END;
  258.          write(nfile,ndir);
  259.       END;
  260.       close(nfile);
  261.       close(ofile);
  262.    END;
  263.  
  264.    PROCEDURE
  265.       reformat3;
  266.    {
  267.       This procedure is intended to be used to upgrade old versions of the GT
  268.       phone directory to the new improved style.  The program renames the old
  269.       directory to >.DIR and the new directory becomes GT.DIR, ready to
  270.       use with GT v11.0.
  271.    }
  272.    TYPE
  273.       odialrec   = RECORD
  274.                       redial    : CHAR;
  275.                       name      : STRING[30];
  276.                       password  : STRING[30];
  277.                       ccount    : INTEGER;
  278.                       cduration : REAL;
  279.                       number    : STRING[14];
  280.                       date      : STRING[8];
  281.                       time      : STRING[5];
  282.                       baud      : INTEGER;
  283.                       parity    : INTEGER;
  284.                       databits  : INTEGER;
  285.                       stopbits  : INTEGER;
  286.                    END;
  287.  
  288.       odialarray = RECORD
  289.                       no       : INTEGER;
  290.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  291.                    END;
  292.    VAR
  293.       ofile   : file OF odialarray;
  294.       odir    : odialarray;
  295.       i,j,k   : INTEGER;
  296.       s       : STRING[255];
  297.       dname   : STRING[50];
  298.    BEGIN
  299.       writeln;
  300.       writeln('***********************************************************************');
  301.       writeln('*    Make sure the old phone directory is in the default directory    *');
  302.       writeln('*    and default drive, then enter the filename to begin or type      *');
  303.       writeln('*    "exit" followed by <enter> to quit.                              *');
  304.       writeln('***********************************************************************');
  305.       writeln;
  306.       s[0] := #00;
  307.       readln(s);
  308.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  309.          exit;
  310.       i := pos('.',s);
  311.       IF (i > 0) THEN
  312.          s[0] := CHR(Pred(i));
  313.       IF (s[0] = #00) THEN
  314.          dname := 'GT'
  315.       ELSE
  316.          dname := s;
  317.       assign(ofile,dname+'.DIR');
  318.       s := '&'+dname;
  319.       IF s[0] > #08 THEN
  320.          s[0] := #08;
  321.       rename(ofile,s+'.DIR');
  322.       reset(ofile);
  323.       assign(nfile,dname+'.DIR');
  324.       rewrite(nfile);
  325.       i := filesize(ofile);
  326.       FOR j:=0 to pred(i) DO BEGIN
  327.          seek(ofile,j);
  328.          read(ofile,odir);
  329.          ndir.no := odir.no;
  330.          FOR k:=1 to 16 DO BEGIN
  331.             ndir.entries[k].redial   := odir.entries[k].redial;
  332.             ndir.entries[k].date     := odir.entries[k].date;
  333.             ndir.entries[k].time     := odir.entries[k].time;
  334.             ndir.entries[k].password := odir.entries[k].password;
  335.             ndir.entries[k].ccount   := odir.entries[k].ccount;
  336.             ndir.entries[k].cduration:= odir.entries[k].cduration;
  337.             ndir.entries[k].cupload  := 0.0;
  338.             ndir.entries[k].cdnload  := 0.0;
  339.             ndir.entries[k].hours    := '';
  340.             ndir.entries[k].name     := odir.entries[k].name;
  341.             ndir.entries[k].number   := odir.entries[k].number;
  342.             ndir.entries[k].baud     := odir.entries[k].baud;
  343.             ndir.entries[k].parity   := odir.entries[k].parity;
  344.             ndir.entries[k].databits := odir.entries[k].databits;
  345.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  346.             ndir.entries[k].protocol := ' ';
  347.             ndir.entries[k].script   := '';
  348.          END;
  349.          write(nfile,ndir);
  350.       END;
  351.       close(nfile);
  352.       close(ofile);
  353.    END;
  354.  
  355.    PROCEDURE
  356.       reformat4;
  357.    {
  358.       This procedure is intended to be used to upgrade old versions of the GT
  359.       phone directory to the new improved style.  The program renames the old
  360.       directory to !GT.DIR and the new directory becomes GT.DIR, ready to
  361.       use with GT v11.0.
  362.    }
  363.    TYPE
  364.       odialrec   = RECORD
  365.                       redial    : CHAR;
  366.                       name      : STRING[30];
  367.                       password  : STRING[30];
  368.                       ccount    : INTEGER;
  369.                       cduration : REAL;
  370.                       cupload   : REAL;
  371.                       cdnload   : REAL;
  372.                       number    : STRING[14];
  373.                       date      : STRING[8];
  374.                       time      : STRING[5];
  375.                       baud      : INTEGER;
  376.                       parity    : INTEGER;
  377.                       databits  : INTEGER;
  378.                       stopbits  : INTEGER;
  379.                    END;
  380.  
  381.       odialarray = RECORD
  382.                       no       : INTEGER;
  383.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  384.                    END;
  385.    VAR
  386.       ofile   : file OF odialarray;
  387.       odir    : odialarray;
  388.       i,j,k   : INTEGER;
  389.       s       : STRING[255];
  390.       dname   : STRING[50];
  391.    BEGIN
  392.       writeln;
  393.       writeln('***********************************************************************');
  394.       writeln('*    Make sure the old phone directory is in the default directory    *');
  395.       writeln('*    and default drive, then enter the filename to begin or type      *');
  396.       writeln('*    "exit" followed by <enter> to quit.                              *');
  397.       writeln('***********************************************************************');
  398.       writeln;
  399.       s[0] := #00;
  400.       readln(s);
  401.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  402.          exit;
  403.       i := pos('.',s);
  404.       IF (i > 0) THEN
  405.          s[0] := CHR(Pred(i));
  406.       IF (s[0] = #00) THEN
  407.          dname := 'GT'
  408.       ELSE
  409.          dname := s;
  410.       assign(ofile,dname+'.DIR');
  411.       s := '!'+dname;
  412.       IF s[0] > #08 THEN
  413.          s[0] := #08;
  414.       rename(ofile,s+'.DIR');
  415.       reset(ofile);
  416.       assign(nfile,dname+'.DIR');
  417.       rewrite(nfile);
  418.       i := filesize(ofile);
  419.       FOR j:=0 to pred(i) DO BEGIN
  420.          seek(ofile,j);
  421.          read(ofile,odir);
  422.          ndir.no := odir.no;
  423.          FOR k:=1 to 16 DO BEGIN
  424.             ndir.entries[k].redial   := odir.entries[k].redial;
  425.             ndir.entries[k].date     := odir.entries[k].date;
  426.             ndir.entries[k].time     := odir.entries[k].time;
  427.             ndir.entries[k].password := odir.entries[k].password;
  428.             ndir.entries[k].ccount   := odir.entries[k].ccount;
  429.             ndir.entries[k].cduration:= odir.entries[k].cduration;
  430.             ndir.entries[k].cupload  := odir.entries[k].cupload;
  431.             ndir.entries[k].cdnload  := odir.entries[k].cdnload;
  432.             ndir.entries[k].hours    := '';
  433.             ndir.entries[k].name     := odir.entries[k].name;
  434.             ndir.entries[k].number   := odir.entries[k].number;
  435.             ndir.entries[k].baud     := odir.entries[k].baud;
  436.             ndir.entries[k].parity   := odir.entries[k].parity;
  437.             ndir.entries[k].databits := odir.entries[k].databits;
  438.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  439.             ndir.entries[k].protocol := ' ';
  440.             ndir.entries[k].script   := '';
  441.          END;
  442.          write(nfile,ndir);
  443.       END;
  444.       close(nfile);
  445.       close(ofile);
  446.    END;
  447.  
  448.    PROCEDURE
  449.       reformat5;
  450.    {
  451.       This procedure is intended to be used to upgrade old versions of the GT
  452.       phone directory to the new improved style.  The program renames the old
  453.       directory to #GT.DIR and the new directory becomes GT.DIR, ready to
  454.       use with GT v11.0.
  455.    }
  456.    TYPE
  457.       odialrec   = RECORD
  458.                       redial    : CHAR;
  459.                       name      : STRING[30];
  460.                       hours     : STRING[5];
  461.                       password  : STRING[30];
  462.                       ccount    : INTEGER;
  463.                       cduration : REAL;
  464.                       cupload   : REAL;
  465.                       cdnload   : REAL;
  466.                       number    : STRING[14];
  467.                       date      : STRING[8];
  468.                       time      : STRING[5];
  469.                       baud      : INTEGER;
  470.                       parity    : INTEGER;
  471.                       databits  : INTEGER;
  472.                       stopbits  : INTEGER;
  473.                    END;
  474.  
  475.       odialarray = RECORD
  476.                       no       : INTEGER;
  477.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  478.                    END;
  479.    VAR
  480.       ofile   : file OF odialarray;
  481.       odir    : odialarray;
  482.       i,j,k   : INTEGER;
  483.       s       : STRING[255];
  484.       dname   : STRING[50];
  485.    BEGIN
  486.       writeln;
  487.       writeln('***********************************************************************');
  488.       writeln('*    Make sure the old phone directory is in the default directory    *');
  489.       writeln('*    and default drive, then enter the filename to begin or type      *');
  490.       writeln('*    "exit" followed by <enter> to quit.                              *');
  491.       writeln('***********************************************************************');
  492.       writeln;
  493.       s[0] := #00;
  494.       readln(s);
  495.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  496.          exit;
  497.       i := pos('.',s);
  498.       IF (i > 0) THEN
  499.          s[0] := CHR(Pred(i));
  500.       IF (s[0] = #00) THEN
  501.          dname := 'GT'
  502.       ELSE
  503.          dname := s;
  504.       assign(ofile,dname+'.DIR');
  505.       s := '#'+dname;
  506.       IF s[0] > #08 THEN
  507.          s[0] := #08;
  508.       rename(ofile,s+'.DIR');
  509.       reset(ofile);
  510.       assign(nfile,dname+'.DIR');
  511.       rewrite(nfile);
  512.       i := filesize(ofile);
  513.       FOR j:=0 to pred(i) DO BEGIN
  514.          seek(ofile,j);
  515.          read(ofile,odir);
  516.          ndir.no := odir.no;
  517.          FOR k:=1 to 16 DO BEGIN
  518.             ndir.entries[k].redial   := odir.entries[k].redial;
  519.             ndir.entries[k].date     := odir.entries[k].date;
  520.             ndir.entries[k].time     := odir.entries[k].time;
  521.             ndir.entries[k].password := odir.entries[k].password;
  522.             ndir.entries[k].ccount   := odir.entries[k].ccount;
  523.             ndir.entries[k].cduration:= odir.entries[k].cduration;
  524.             ndir.entries[k].cupload  := odir.entries[k].cupload;
  525.             ndir.entries[k].cdnload  := odir.entries[k].cdnload;
  526.             ndir.entries[k].hours    := odir.entries[k].hours;
  527.             ndir.entries[k].name     := odir.entries[k].name;
  528.             ndir.entries[k].number   := odir.entries[k].number;
  529.             ndir.entries[k].baud     := odir.entries[k].baud;
  530.             ndir.entries[k].parity   := odir.entries[k].parity;
  531.             ndir.entries[k].databits := odir.entries[k].databits;
  532.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  533.             ndir.entries[k].protocol := ' ';
  534.             ndir.entries[k].script   := '';
  535.          END;
  536.          write(nfile,ndir);
  537.       END;
  538.       close(nfile);
  539.       close(ofile);
  540.    END;
  541.  
  542.    PROCEDURE
  543.       reformat6;
  544.    {
  545.       This procedure is intended to be used to upgrade old versions of the GT
  546.       phone directory to the new improved style.  The program renames the old
  547.       directory to #GT.DIR and the new directory becomes GT.DIR, ready to
  548.       use with GT v11.0.
  549.    }
  550.    TYPE
  551.       odialrec   = RECORD
  552.                       redial    : CHAR;
  553.                       name      : STRING[30];
  554.                       hours     : STRING[9];
  555.                       password  : STRING[30];
  556.                       ccount    : INTEGER;
  557.                       cduration : REAL;
  558.                       cupload   : REAL;
  559.                       cdnload   : REAL;
  560.                       number    : STRING[14];
  561.                       date      : STRING[8];
  562.                       time      : STRING[5];
  563.                       baud      : INTEGER;
  564.                       parity    : INTEGER;
  565.                       databits  : INTEGER;
  566.                       stopbits  : INTEGER;
  567.                    END;
  568.  
  569.       odialarray = RECORD
  570.                       no       : INTEGER;
  571.                       entries  : ARRAY[ 1..16 ] OF odialrec;
  572.                    END;
  573.    VAR
  574.       ofile   : file OF odialarray;
  575.       odir    : odialarray;
  576.       i,j,k   : INTEGER;
  577.       s       : STRING[255];
  578.       dname   : STRING[50];
  579.    BEGIN
  580.       writeln;
  581.       writeln('***********************************************************************');
  582.       writeln('*    Make sure the old phone directory is in the default directory    *');
  583.       writeln('*    and default drive, then enter the filename to begin or type      *');
  584.       writeln('*    "exit" followed by <enter> to quit.                              *');
  585.       writeln('***********************************************************************');
  586.       writeln;
  587.       s[0] := #00;
  588.       readln(s);
  589.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  590.          exit;
  591.       i := pos('.',s);
  592.       IF (i > 0) THEN
  593.          s[0] := CHR(Pred(i));
  594.       IF (s[0] = #00) THEN
  595.          dname := 'GT'
  596.       ELSE
  597.          dname := s;
  598.       assign(ofile,dname+'.DIR');
  599.       s := '_'+dname;
  600.       IF s[0] > #08 THEN
  601.          s[0] := #08;
  602.       rename(ofile,s+'.DIR');
  603.       reset(ofile);
  604.       assign(nfile,dname+'.DIR');
  605.       rewrite(nfile);
  606.       i := filesize(ofile);
  607.       FOR j:=0 to pred(i) DO BEGIN
  608.          seek(ofile,j);
  609.          read(ofile,odir);
  610.          ndir.no := odir.no;
  611.          FOR k:=1 to 16 DO BEGIN
  612.             ndir.entries[k].redial   := odir.entries[k].redial;
  613.             ndir.entries[k].date     := odir.entries[k].date;
  614.             ndir.entries[k].time     := odir.entries[k].time;
  615.             ndir.entries[k].password := odir.entries[k].password;
  616.             ndir.entries[k].ccount   := odir.entries[k].ccount;
  617.             ndir.entries[k].cduration:= odir.entries[k].cduration;
  618.             ndir.entries[k].cupload  := odir.entries[k].cupload;
  619.             ndir.entries[k].cdnload  := odir.entries[k].cdnload;
  620.             ndir.entries[k].hours    := odir.entries[k].hours;
  621.             ndir.entries[k].name     := odir.entries[k].name;
  622.             ndir.entries[k].number   := odir.entries[k].number;
  623.             ndir.entries[k].baud     := odir.entries[k].baud;
  624.             ndir.entries[k].parity   := odir.entries[k].parity;
  625.             ndir.entries[k].databits := odir.entries[k].databits;
  626.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  627.             ndir.entries[k].protocol := ' ';
  628.             ndir.entries[k].script   := '';
  629.          END;
  630.          write(nfile,ndir);
  631.       END;
  632.       close(nfile);
  633.       close(ofile);
  634.    END;
  635.  
  636.    PROCEDURE
  637.       repair;
  638.    TYPE
  639.       odialarray = RECORD
  640.                       no       : INTEGER;
  641.                       entries  : ARRAY[ 1..16 ] OF ndialrec;
  642.                    END;
  643.    VAR
  644.       ofile   : file OF odialarray;
  645.       odir    : odialarray;
  646.       i,j,k   : INTEGER;
  647.       s       : STRING[255];
  648.       dname   : STRING[50];
  649.    BEGIN
  650.       writeln;
  651.       writeln('***********************************************************************');
  652.       writeln('*    Make sure the old phone directory is in the default directory    *');
  653.       writeln('*    and default drive, then enter the filename to begin or type      *');
  654.       writeln('*    "exit" followed by <enter> to quit.                              *');
  655.       writeln('***********************************************************************');
  656.       writeln;
  657.       s[0] := #00;
  658.       readln(s);
  659.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  660.          exit;
  661.       i := pos('.',s);
  662.       IF (i > 0) THEN
  663.          s[0] := CHR(Pred(i));
  664.       IF (s[0] = #00) THEN
  665.          dname := 'GT'
  666.       ELSE
  667.          dname := s;
  668.       assign(ofile,dname+'.DIR');
  669.       s := '_'+dname;
  670.       IF s[0] > #08 THEN
  671.          s[0] := #08;
  672.       rename(ofile,s+'.DIR');
  673.       reset(ofile);
  674.       assign(nfile,dname+'.DIR');
  675.       rewrite(nfile);
  676.       i := filesize(ofile);
  677.       i := Pred(i);
  678.       FOR j:=0 to pred(i) DO BEGIN
  679.          seek(ofile,j);
  680.          read(ofile,odir);
  681.          ndir.no := odir.no;
  682.          FOR k:=1 to 16 DO BEGIN
  683.             ndir.entries[k].redial   := odir.entries[k].redial;
  684.             ndir.entries[k].date     := odir.entries[k].date;
  685.             ndir.entries[k].time     := odir.entries[k].time;
  686.             ndir.entries[k].password := odir.entries[k].password;
  687.             ndir.entries[k].ccount   := odir.entries[k].ccount;
  688.             ndir.entries[k].cduration:= odir.entries[k].cduration;
  689.             ndir.entries[k].cupload  := odir.entries[k].cupload;
  690.             ndir.entries[k].cdnload  := odir.entries[k].cdnload;
  691.             ndir.entries[k].hours    := odir.entries[k].hours;
  692.             ndir.entries[k].name     := odir.entries[k].name;
  693.             ndir.entries[k].number   := odir.entries[k].number;
  694.             ndir.entries[k].baud     := odir.entries[k].baud;
  695.             ndir.entries[k].parity   := odir.entries[k].parity;
  696.             ndir.entries[k].databits := odir.entries[k].databits;
  697.             ndir.entries[k].stopbits := odir.entries[k].stopbits;
  698.             ndir.entries[k].protocol := odir.entries[k].protocol;
  699.             ndir.entries[k].script   := odir.entries[k].script;
  700.          END;
  701.          write(nfile,ndir);
  702.       END;
  703.       close(nfile);
  704.       close(ofile);
  705.    END;
  706.  
  707.    PROCEDURE
  708.       printout;
  709.    CONST
  710.       pt      : ARRAY[0..2] OF CHAR = ('N','E','O');
  711.       blanks  = '                                          ';
  712.  
  713.    VAR
  714.       i,j,k    : INTEGER;
  715.       s        : STRING[80];
  716.       pname    : STRING[50];
  717.       dname    : STRING[50];
  718.       prt_file : TEXT;
  719.       t        : INTEGER;
  720.  
  721.    BEGIN
  722.       writeln;
  723.       writeln('***********************************************************************');
  724.       writeln('*    Make sure the phone directory is in the default directory and    *');
  725.       writeln('*    default drive, then press <enter> when ready to begin or type    *');
  726.       writeln('*    "exit" followed by <enter> to quit.   If you wish the output     *');
  727.       writeln('*    to go to a file, instead of the printer, enter the filename.     *');
  728.       writeln('***********************************************************************');
  729.       writeln;
  730.       s[0] := #00;
  731.       readln(s);
  732.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  733.          exit;
  734.       IF (s[0] = #00) THEN
  735.          pname := 'LST:'
  736.       ELSE
  737.          pname := s;
  738.       writeln;
  739.       writeln('*****************************************************************');
  740.       writeln('*    Type the name of the directory to be printed, or "exit"    *');
  741.       writeln('*    to quit, followed by <enter>.                              *');
  742.       writeln('*****************************************************************');
  743.       writeln;
  744.       s[0] := #00;
  745.       readln(s);
  746.       IF ((s = 'exit') OR (s = 'EXIT')) THEN
  747.          exit;
  748.       i := pos('.',s);
  749.       IF (i > 0) THEN
  750.          s[0] := CHR(Pred(i));
  751.       IF (s[0] = #00) THEN
  752.          dname := 'GT.DIR'
  753.       ELSE
  754.          dname := s+'.DIR';
  755.       assign(nfile,dname);
  756.       reset(nfile);
  757.       assign(prt_file,pname);
  758.       rewrite(prt_file);
  759.       i := filesize(nfile);
  760.       FOR j:=0 to Pred(i) DO BEGIN
  761.          seek(nfile,j);
  762.          read(nfile,ndir);
  763.          FOR k:=1 to ndir.no DO BEGIN
  764.             with ndir.entries[k] DO BEGIN
  765.                s := copy(name+blanks,1,31);
  766.                write(prt_file,s);
  767.                s := copy(number+blanks,1,15);
  768.                write(prt_file,s);
  769.                write(prt_file,ccount:4,'  ');
  770.                t := trunc(cduration / 60.0);
  771.                write(prt_file,t:2,':');
  772.                t := trunc(cduration - (int(t) * 60.0));
  773.                str(t:2,s);
  774.                IF s[1]=' ' THEN s[1]:='0';
  775.                write(prt_file,s,' ');
  776.                s := copy(date+blanks,1,9);
  777.                write(prt_file,s);
  778.                s := copy(time+blanks,1,6);
  779.                write(prt_file,s);
  780.                writeln(prt_file,baud:4);
  781.             END;
  782.          END;
  783.       END;
  784.       close(nfile);
  785.       close(prt_file);
  786.    END;
  787.  
  788.    PROCEDURE
  789.       import;
  790.    CONST
  791.       maxaccum = 5;
  792.    VAR
  793.       i,j,k    : INTEGER;
  794.       s        : STRING[255];
  795.       t        : CHAR;
  796.       accum    : ARRAY[0..5] OF STRING[255];
  797.       pname    : STRING[50];
  798.       inp_file : TEXT;
  799.       cont     : BOOLEAN;
  800.    BEGIN
  801.       writeln;
  802.       writeln('***********************************************************************');
  803.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter    *');
  804.       writeln('*    the name of the ASCII input file at this time.                   *');
  805.       writeln('***********************************************************************');
  806.       writeln;
  807.       s[0] := #00;
  808.       readln(s);
  809.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN
  810.          exit;
  811.       assign(inp_file,s);
  812.       reset(inp_file);
  813.       writeln;
  814.       writeln('*************************************************************************');
  815.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter      *');
  816.       writeln('*    the name of the output file at this time, (GT format directory).   *');
  817.       writeln('*    WARNING: The existing contents of the output file will be lost!    *');
  818.       writeln('*************************************************************************');
  819.       writeln;
  820.       s[0] := #00;
  821.       readln(s);
  822.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN BEGIN
  823.          close(inp_file);
  824.          exit;
  825.       END;
  826.       i := pos('.',s);
  827.       IF (i > 0) THEN
  828.          s[0] := CHAR(Pred(i));
  829.       assign(nfile,s+'.DIR');
  830.       rewrite(nfile);
  831.       ndir.no := 0;
  832.       WHILE (NOT eof(inp_file)) DO BEGIN
  833.           readln(inp_file,s);
  834.           ndir.no := Succ(ndir.no);
  835.           IF (ndir.no > 16) THEN BEGIN
  836.              ndir.no := 16;
  837.              write(nfile,ndir);
  838.              ndir.no := 1;
  839.           END;
  840.           While ((s[1] in [' ','.']) AND (s[0] > #00)) DO
  841.              delete(s,1,1);
  842.           with ndir.entries[ndir.no] DO BEGIN
  843.              redial := ' ';
  844.              name := '';
  845.              hours := '';
  846.              password := '';
  847.              protocol := ' ';
  848.              script := '';
  849.              ccount := 0;
  850.              cduration := 0.0;
  851.              cupload   := 0.0;
  852.              cdnload   := 0.0;
  853.              number := '';
  854.              date := '';
  855.              time := '';
  856.              baud := 1200;
  857.              parity := 0;
  858.              databits := 8;
  859.              stopbits := 1;
  860.              FOR k:=0 to maxaccum DO
  861.                 accum[k] := '';
  862.              k := 0;
  863.              WHILE ((k <= maxaccum) AND (s[0] > #00)) DO BEGIN
  864.                 cont := true;
  865.                 While (cont) DO BEGIN
  866.                    accum[k] := accum[k] + s[1];
  867.                    t := s[1];
  868.                    delete(s,1,1);
  869.                    IF (s[0] = #00) THEN
  870.                       cont := false
  871.                    else
  872.                       IF (s[0] < #03) THEN
  873.                          cont := true
  874.                       else
  875.                          IF ((s[1]=' ') and (accum[k][1] in ['1'..'9','('])) THEN
  876.                             cont := false
  877.                          else
  878.                             IF ((s[1] in ['_',' ','.']) and (s[2] = s[1])) THEN
  879.                                cont := false
  880.                             else
  881.                                IF ((s[1] in ['!','#','*','@']) and (t in ['0'..'9','('])) THEN
  882.                                   cont := false;
  883.                 END;
  884.                 k := succ(k);
  885.                 while ((s[0] > #00) and (NOT (s[1] in ['a'..'z','A'..'Z','0'..'9','(']))) DO
  886.                    delete(s,1,1);
  887.              END;
  888.              k := 0;
  889.              cont := true;
  890.              while ((cont) and (k <= maxaccum)) DO BEGIN
  891.                 IF accum[k][0] > #00 THEN BEGIN
  892.                    IF (accum[k][1] in ['0'..'9','(']) THEN BEGIN
  893.                       number := copy(accum[k],1,14);
  894.                       cont := false;
  895.                       IF (k = 0) THEN
  896.                          k := 1
  897.                       else
  898.                          k := 0;
  899.                       FOR i:=2 TO maxaccum DO BEGIN
  900.                          IF (accum[i][0] > #00) THEN
  901.                          accum[k] := accum[k] + '-' + accum[i];
  902.                       END;
  903.                       name := copy(accum[k],1,30);
  904.                    END;
  905.                 END;
  906.                 k := succ(k);
  907.              END;
  908.           END;
  909.       END;
  910.       IF (ndir.no > 0) THEN
  911.          write(nfile,ndir);
  912.       close(nfile);
  913.       close(inp_file);
  914.    END;
  915.  
  916.    PROCEDURE
  917.       qmod105_import;
  918.    VAR
  919.       i,j,k    : INTEGER;
  920.       qname    : STRING[50];
  921.       pname    : STRING[50];
  922.       cont     : BOOLEAN;
  923.       qdir     : phone_type105;
  924.       qfile    : file of phone_type105;
  925.       qrec     : INTEGER;
  926.       qsize    : INTEGER;
  927.       s        : STRING[255];
  928.    BEGIN
  929.       writeln;
  930.       writeln('***********************************************************************');
  931.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter    *');
  932.       writeln('*    the name of the Qmodem 1.05 FON file at this time.               *');
  933.       writeln('***********************************************************************');
  934.       writeln;
  935.       s[0] := #00;
  936.       readln(s);
  937.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN
  938.          exit;
  939.       i := pos('.',s);
  940.       IF (i > 0) THEN
  941.          s[0] := CHAR(Pred(i));
  942.       assign(qfile,s+'.FON');
  943.       reset(qfile);
  944.       writeln;
  945.       writeln('*************************************************************************');
  946.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter      *');
  947.       writeln('*    the name of the output file at this time, (GT format directory).   *');
  948.       writeln('*    WARNING: The existing contents of the output file will be lost!    *');
  949.       writeln('*************************************************************************');
  950.       writeln;
  951.       s[0] := #00;
  952.       readln(s);
  953.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN BEGIN
  954.          close(qfile);
  955.          exit;
  956.       END;
  957.       i := pos('.',s);
  958.       IF (i > 0) THEN
  959.          s[0] := CHAR(Pred(i));
  960.       assign(nfile,s+'.DIR');
  961.       rewrite(nfile);
  962.       ndir.no := 0;
  963.       qsize := filesize(qfile);
  964.       FOR i := 0 TO Pred(qsize) DO BEGIN
  965.          seek(qfile,i);
  966.          read(qfile,qdir);
  967.          IF (copy(qdir.name,1,10) <> '----------') THEN BEGIN
  968.             ndir.no := Succ(ndir.no);
  969.             IF (ndir.no > 16) THEN BEGIN
  970.                ndir.no := 16;
  971.                write(nfile,ndir);
  972.                ndir.no := 1;
  973.             END;
  974.             with ndir.entries[ndir.no] DO BEGIN
  975.                redial := ' ';
  976.                hours := '';
  977.                name := qdir.name;
  978.                password := '';
  979.                protocol := ' ';
  980.                script := '';
  981.                ccount := 0;
  982.                cduration := 0.0;
  983.                cupload   := 0.0;
  984.                cdnload   := 0.0;
  985.                number := qdir.number;
  986.                date := '';
  987.                time := '';
  988.                baud := qdir.speed;
  989.                parity := qdir.parity;
  990.                databits := qdir.dbits;
  991.                stopbits := qdir.sbits;
  992.             END;
  993.          END;
  994.       END;
  995.       IF (ndir.no > 0) THEN
  996.          write(nfile,ndir);
  997.       close(nfile);
  998.       close(qfile);
  999.    END;
  1000.  
  1001.    PROCEDURE
  1002.       qmod200_import;
  1003.    VAR
  1004.       i,j,k    : INTEGER;
  1005.       qname    : STRING[50];
  1006.       pname    : STRING[50];
  1007.       cont     : BOOLEAN;
  1008.       qdir     : phone_type200;
  1009.       qfile    : file of phone_type200;
  1010.       qrec     : INTEGER;
  1011.       qsize    : INTEGER;
  1012.       s        : STRING[255];
  1013.    BEGIN
  1014.       writeln;
  1015.       writeln('***********************************************************************');
  1016.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter    *');
  1017.       writeln('*    the name of the Qmodem 2.00 FON file at this time.               *');
  1018.       writeln('***********************************************************************');
  1019.       writeln;
  1020.       s[0] := #00;
  1021.       readln(s);
  1022.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN
  1023.          exit;
  1024.       assign(qfile,s);
  1025.       reset(qfile);
  1026.       writeln;
  1027.       writeln('*************************************************************************');
  1028.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter      *');
  1029.       writeln('*    the name of the output file at this time, (GT format directory).   *');
  1030.       writeln('*    WARNING: The existing contents of the output file will be lost!    *');
  1031.       writeln('*************************************************************************');
  1032.       writeln;
  1033.       s[0] := #00;
  1034.       readln(s);
  1035.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN BEGIN
  1036.          close(qfile);
  1037.          exit;
  1038.       END;
  1039.       i := pos('.',s);
  1040.       IF (i > 0) THEN
  1041.          s[0] := CHAR(Pred(i));
  1042.       assign(nfile,s+'.DIR');
  1043.       rewrite(nfile);
  1044.       ndir.no := 0;
  1045.       qsize := filesize(qfile);
  1046.       FOR i := 0 TO Pred(qsize) DO BEGIN
  1047.          seek(qfile,i);
  1048.          read(qfile,qdir);
  1049.          IF (copy(qdir.name,1,10) <> '----------') THEN BEGIN
  1050.             ndir.no := Succ(ndir.no);
  1051.             IF (ndir.no > 16) THEN BEGIN
  1052.                ndir.no := 16;
  1053.                write(nfile,ndir);
  1054.                ndir.no := 1;
  1055.             END;
  1056.             with ndir.entries[ndir.no] DO BEGIN
  1057.                redial := ' ';
  1058.                hours := '';
  1059.                name := qdir.name;
  1060.                password := '';
  1061.                protocol := ' ';
  1062.                script := '';
  1063.                ccount := 0;
  1064.                cduration := 0.0;
  1065.                cupload   := 0.0;
  1066.                cdnload   := 0.0;
  1067.                number := qdir.number;
  1068.                date := '';
  1069.                time := '';
  1070.                baud := qdir.speed;
  1071.                parity := qdir.parity;
  1072.                databits := qdir.dbits;
  1073.                stopbits := qdir.sbits;
  1074.             END;
  1075.          END;
  1076.       END;
  1077.       IF (ndir.no > 0) THEN
  1078.          write(nfile,ndir);
  1079.       close(nfile);
  1080.       close(qfile);
  1081.    END;
  1082.  
  1083.    PROCEDURE
  1084.       qmod210_import;
  1085.    VAR
  1086.       i,j,k    : INTEGER;
  1087.       qname    : STRING[50];
  1088.       pname    : STRING[50];
  1089.       cont     : BOOLEAN;
  1090.       qdir     : phone_type210;
  1091.       qfile    : file of phone_type210;
  1092.       qrec     : INTEGER;
  1093.       qsize    : INTEGER;
  1094.       s        : STRING[255];
  1095.    BEGIN
  1096.       writeln;
  1097.       writeln('***********************************************************************');
  1098.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter    *');
  1099.       writeln('*    the name of the Qmodem 2.10 FON file at this time.               *');
  1100.       writeln('***********************************************************************');
  1101.       writeln;
  1102.       s[0] := #00;
  1103.       readln(s);
  1104.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN
  1105.          exit;
  1106.       assign(qfile,s);
  1107.       reset(qfile);
  1108.       writeln;
  1109.       writeln('*************************************************************************');
  1110.       writeln('*    Enter "exit" followed by <enter> to quit.   To continue enter      *');
  1111.       writeln('*    the name of the output file at this time, (GT format directory).   *');
  1112.       writeln('*    WARNING: The existing contents of the output file will be lost!    *');
  1113.       writeln('*************************************************************************');
  1114.       writeln;
  1115.       s[0] := #00;
  1116.       readln(s);
  1117.       IF ((s = 'exit') OR (s = 'EXIT') OR (s = '')) THEN BEGIN
  1118.          close(qfile);
  1119.          exit;
  1120.       END;
  1121.       i := pos('.',s);
  1122.       IF (i > 0) THEN
  1123.          s[0] := CHAR(Pred(i));
  1124.       assign(nfile,s+'.DIR');
  1125.       rewrite(nfile);
  1126.       ndir.no := 0;
  1127.       qsize := filesize(qfile);
  1128.       FOR i := 0 TO Pred(qsize) DO BEGIN
  1129.          seek(qfile,i);
  1130.          read(qfile,qdir);
  1131.          IF (copy(qdir.name,1,10) <> '----------') THEN BEGIN
  1132.             ndir.no := Succ(ndir.no);
  1133.             IF (ndir.no > 16) THEN BEGIN
  1134.                ndir.no := 16;
  1135.                write(nfile,ndir);
  1136.                ndir.no := 1;
  1137.             END;
  1138.             with ndir.entries[ndir.no] DO BEGIN
  1139.                redial := ' ';
  1140.                hours := '';
  1141.                name := qdir.name;
  1142.                password := '';
  1143.                protocol := ' ';
  1144.                script := '';
  1145.                ccount := trunc(qdir.times);
  1146.                cduration := 0.0;
  1147.                cupload   := 0.0;
  1148.                cdnload   := 0.0;
  1149.                number := qdir.number;
  1150.                date := qdir.date;
  1151.                time := '';
  1152.                baud := qdir.speed;
  1153.                parity := qdir.parity;
  1154.                databits := qdir.dbits;
  1155.                stopbits := qdir.sbits;
  1156.             END;
  1157.          END;
  1158.       END;
  1159.       IF (ndir.no > 0) THEN
  1160.          write(nfile,ndir);
  1161.       close(nfile);
  1162.       close(qfile);
  1163.    END;
  1164.  
  1165. VAR
  1166.    i  : INTEGER;
  1167.  
  1168. BEGIN
  1169.    writeln;
  1170.    writeln('*************************** MENU *******************************');
  1171.    writeln('*     1.  Convert Pre 4.20 Phone Directory to New Format.      *');
  1172.    writeln('*     2.  Convert 4.20 - 7.10 Phone Directory to New Format.   *');
  1173.    writeln('*     3.  Convert 8.xx Phone Directory to New Format.          *');
  1174.    writeln('*     4.  Convert 9.00 Phone Directory to New Format.          *');
  1175.    writeln('*     5.  Convert 9.10 Phone Directory to New Format.          *');
  1176.    writeln('*     6.  Convert 9.20 - 10.20 Phone Directory to New Format.  *');
  1177.    writeln('*     7.  Convert Qmodem 1.05 .FON to GT Directory Format.     *');
  1178.    writeln('*     8.  Convert Qmodem 2.00 .FON to GT Directory Format.     *');
  1179.    writeln('*     9.  Convert Qmodem 2.10 .FON to GT Directory Format.     *');
  1180.    writeln('*    10.  Print GT Directory to a file or System Printer.      *');
  1181.    writeln('*    11.  Import Text List to GT Directory Format.             *');
  1182.    writeln('*    12.  Repair Phone Directory.                              *');
  1183.    writeln('****************************************************************');
  1184.    writeln;
  1185.    write('     Enter the number of your selection: ');
  1186.    readln(i);
  1187.    CASE i OF
  1188.       1 : reformat;
  1189.       2 : reformat2;
  1190.       3 : reformat3;
  1191.       4 : reformat4;
  1192.       5 : reformat5;
  1193.       6 : reformat6;
  1194.       7 : qmod105_import;
  1195.       8 : qmod200_import;
  1196.       9 : qmod210_import;
  1197.      10 : printout;
  1198.      11 : import;
  1199.      12 : repair;
  1200.    END;
  1201. END.
  1202.